

//Animal
//Animal Class 
#ifndef ANIMAL_H
#define ANIMAL_H
#include <string>
using std::string;
class Animal
{
    public:
        Animal(string theName,int wt);//Constructor
        void PublicWho() const;             //Display name and weight
    protected:
        void ProtectedWho() const;  
    private:
        string name;                   //Name of the animal
        int weight; 
                            //Weight of the animal
        
        
};
class Lion: public Animal
{  public:
    Lion(string theName,int wt):Animal(theName,wt){}
    void LionWho() const;
};
class Adark: public Animal
{
     Adark(string theName,int wt):Animal(theName,wt){}
     void AdarkWho() const;
};
#endif

#ifndef PERSON_H
#define PERSON_H
#include <iostream>
#include <string>
class Person
{
    public:
        Person():age(0),name(""),gender('f'){};//Default Constructor
        Person(int theAge,string theName,char theGender);
        void who() const;
    protected:
        int age;
        string name;
        char gender;
    
};
class Employee:public Person
{
    public:
        Employee(){};
        Employee(int theAge,string theName,char theGender,long theNumber):
            Person(theAge,theName,theGender),personNumber(theNumber){}
        void who()const;
    protected:
        long personNumber;
 
};
class Executive:public Employee
{
  public:
    Executive(){};
    Executive (int theAge,string theName,char theGender,long theNumber):
    Employee(theAge,theName,theGender,theNumber){}
    void who() const;
};

#endif
